// -*- Mode: C++ -*-
/*++

Copyright (c) 1999 Microsoft Corporation

Abstract:

    Interface definitions for TIME private components

--*/

import "oleidl.idl";
import "oaidl.idl";

interface ITIMEMediaDownloader;

[
    object,
    uuid(4f9b5291-e6e0-419e-a28d-09eb23e91cb3),
    dual,
    pointer_default(unique)
]
interface ITIMEImportMedia : IUnknown
{
    HRESULT CueMedia();
    HRESULT GetPriority([out, retval] double *dblPriority);
    HRESULT GetUniqueID([out, retval] long *lID);
    HRESULT InitializeElementAfterDownload();
    HRESULT GetMediaDownloader(ITIMEMediaDownloader ** ppMediaDownloader);
    HRESULT PutMediaDownloader(ITIMEMediaDownloader * pMediaDownloader);
    HRESULT CanBeCued([out, retval] VARIANT_BOOL * pVB_CanCue);
    HRESULT MediaDownloadError();
}
    
[
    object,
    uuid(a951b11a-c712-45b3-b884-2469a6243368),
    dual,
    pointer_default(unique)
]
interface ITIMEMediaDownloader : ITIMEImportMedia
{
    HRESULT Init(long);
    HRESULT AddImportMedia(ITIMEImportMedia * pImportMedia);
    HRESULT RemoveImportMedia(ITIMEImportMedia * pImportMedia);
}

